//package com.xcjh.opencv;
//
//import org.opencv.core.Core;
//import org.opencv.core.Mat;
//import org.opencv.core.Point;
//import org.opencv.imgcodecs.Imgcodecs;
//import org.opencv.imgproc.Imgproc;
//
//import java.awt.*;
//import java.text.DecimalFormat;
//
///**
// * 找到相似图片,并且移动上去
// */
//public class FindSimilarImageOld {
//
//    private static final double MIN =0.03;
//
//    /**
//     * 存储屏幕尺寸
//     */
//    private static Dimension dim;
//    /**
//     * 自动化对象
//     */
//    private static Robot robot;
//
//    static {
//        dim = Toolkit.getDefaultToolkit().getScreenSize();
////        System.out.println("屏幕大小为：" + dim.getWidth() + " " + dim.getHeight());
//        try {
//            robot = new Robot();
//        } catch (AWTException e) {
//            e.printStackTrace();
//        }
//    }
//
//
//    public static void main(String[] args) throws Exception {
//        FindSimilarImageOld img=new FindSimilarImageOld();
//        String file="E:/test/testopencv/debug.bmp";
//        img.find2(file);
//    }
//
//    public void find() throws Exception {
//
//        // 初始化 OpenCV
//        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//
//        // 读取待查找的图片
//        Mat template = Imgcodecs.imread("E:\\test\\testopencv\\3.png");
//
//        // 使用 Robot 抓屏,获取屏幕图像
//        Mat img = ImageUtil.getScreenImage(robot);
//
//        // 模板匹配,找出相似区域
//        Mat result = new Mat();
//        Imgproc.matchTemplate(img, template, result, Imgproc.TM_SQDIFF_NORMED);
//
//        System.out.println(result);
//        // 取最小值点,即最相似点
//        Core.MinMaxLocResult mmr = Core.minMaxLoc(result);
//
//        // 移动鼠标到相似点位置
//        moveAndClick(mmr);
//    }
//
//    /**
//     * 移动并且点击
//     * @param mmr
//     */
//    private void moveAndClick(Core.MinMaxLocResult mmr){
//        // 移动鼠标到相似点位置
//        robot.mouseMove((int) mmr.minLoc.x, (int) mmr.minLoc.y);
////        robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
//    }
//
//
//
//
//    public void  find2(String file) throws Exception {
//        // 加载OpenCV库
//        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//
//
//        //不是bmp标准图片不允许执行
//        ImageUtil.isPic(file);
//        // 加载目标图片和屏幕截图.
//        Mat targetImage = Imgcodecs.imread(file);
//        Mat screenImage = ImageUtil.getScreenImage(robot);
//
//        // 进行模板匹配
//        Mat result = new Mat();
//        Imgproc.matchTemplate(screenImage, targetImage, result, Imgproc.TM_SQDIFF_NORMED);
//
//        // 分析匹配结果
//        Core.MinMaxLocResult mmr = Core.minMaxLoc(result);
//        moveAndClick(mmr);
//        double matchScore = mmr.minVal;
//        Point minLoc = mmr.minLoc;
//
//        // 设置相似度阈值
//
//        DecimalFormat doubleFormat = new DecimalFormat("#.#############");
//        System.out.println("相似度最小:"+doubleFormat.format(matchScore));
//        System.out.println("相似度最小:"+doubleFormat.format(1023.235500d));
//
//        System.out.println("相似度位置:"+minLoc.x+" "+minLoc.y);
//
//
//        // 判断是否找到相似图片, 小于阈值就代表找到了, 通过 TM_SQDIFF_NORMED 算法 越小越好.
//        if (matchScore < MIN) {
//            // 找到了相似图片
//            // 进行相关操作，如返回信息、保存、打印等
//            System.out.println("找到相似图片");
//        } else {
//            // 没有找到相似图片
//            // 执行其他处理，如返回空或提示信息等
//            System.out.println("未找到相似图片");
//        }
//    }
//
//
//
//
//
//
//}